# -*- coding:utf-8 -*-
# @Time：2020/01/25
"""实现一个copy函数，可以从a目录copy文件到b目录"""
from pathlib import Path
import shutil
# dir='/Users/rizhiyi/PycharmProjects/python34'
#
# for f in Path(dir).rglob("*"):
#     print(f)


class CopyFile:
    def __init__(self, src, dst):
        self.src = src
        self.dst = dst
        self.flag = True

    @property
    def judge(self):
        """判断原文件以及目标目录是否存在"""
        self.flag = Path(self.src).exists() and len(self.src)
        if not self.flag:
            print("{}文件不存在，请正确输入".format(self.src))
        self.flag = len(self.dst)
        if not self.flag:
            print("{}目录不存在，请正确输入".format(self.dst))
        if not Path(self.dst).is_dir():
            print("{}目录不存在，将自动创建".format(self.dst))
            Path(self.dst).mkdir()
        return self.flag

    def copydata(self):
        """拷贝文件数据到目标目录"""
        file = Path(self.src)
        dstfile = Path(self.dst, file.name)
        # with open(self.src, 'rb') as f1:
        #     with open(dstfile,'wb') as f2:
        #         length = 16 * 1027
        #         while True:
        #             buf = f1.read(length)
        #             if not buf:
        #                 break
        #             f2.write(buf)

        shutil.copyfile(self.src, dstfile)


if __name__ == '__main__':
    while True:
        print("输入quit将退出".center(28, "-"))
        srcfile = input("请输入需要copy的文件绝对路径：").strip()
        if srcfile == 'quit':
            break
        dstdir = input("请输入需要目标目录：").strip()
        copy_file = CopyFile(srcfile, dstdir)
        is_exists = copy_file.judge
        if is_exists:
            copy_file.copydata()
            print("copy成功")

"""
可以试下不让输入绝对路径试下
"""
